#ifndef FUNDAMENTAL_OBJECT_H_
#define FUNDAMENTAL_OBJECT_H_

namespace Fundamental
{

#ifndef FUNDAMENTAL_ID_
#define FUNDAMENTAL_ID_
	typedef unsigned int	ID;
#endif

	class Object
	{
	DECLARE_RTTI( Object, NULL )
	public :
		Object( const std::string& name );
		virtual ~Object();

		bool				KindOf( const RTTI& rtti );
		bool				IsA( const RTTI& rtti );

		std::string&		GetName(){ return _uniqueName; }
		ID					GetGUID(){ return _guid; }

	private :
		std::string			_uniqueName;
		ID					_guid;
	};

};

#endif